package Song.Han.demo01;
/*
*   异常产生过程分析
*/
public class Demo01Exception {
    public static void main(String[] args) {
        int[] arr = {1,2,3};
        //main方法接收到了异常对象，但也没有异常的处理逻辑（try..catch），继续把异常对象抛出给调用者JVM来处理
        int e = getElement(arr,3);
        System.out.println(e);
    }

    private static int getElement(int[] arr, int index) {
/*
        JVM检测出没有3索引，检测出异常，随后：
            1.JVM创建一个异常对象，包含了异常产生的（内容，原因，位置）
                new ArrayIndexOutOfBoundsException("3");
            2.在方法getElement中没有异常的处理逻辑（try...catch），则JVM就会把异常对象抛出给调用者main方法来处理
*/
        int ele = arr[index];
        return ele;
    }

   /*
    JVM接收到这个异常对象后：
        1.把异常对象（内容，原因，位置）以红色字体打印在控制台
        2.JVM会终止当前正在执行的java程序 --> 中断处理
   */
}
